home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / modules / nessus-2.2.8.mo / usr / lib / nessus / plugins / pam_smb.nasl < prev    next >
Text File  |  2005-01-14  |  4KB  |  125 lines

  1. #
  2. # This script was written by Renaud Deraison <deraison@cvs.nessus.org>
  3. #
  4. # See the Nessus Scripts License for details
  5. #
  6.  
  7. if(description)
  8. {
  9.  script_id(10517);
  10.  script_bugtraq_id(1666);
  11.  script_version ("$Revision: 1.16 $");
  12.  script_cve_id("CAN-2000-0843");
  13.  
  14.  name["english"] = "pam_smb / pam_ntdom overflow";
  15.  name["francais"] = "DΘpassement de buffer dans pam_smb / pam_ntdom";
  16.  script_name(english:name["english"], francais:name["francais"]);
  17.  
  18.  desc["english"] = "
  19. The remote telnet server shut the connection abruptly when given
  20. a long username followed by a password.
  21.  
  22. Although Nessus could not be 100% positive, it may mean that
  23. the remote host is using an older pam_smb or pam_ntdom
  24. pluggable authentication module to validate user credentials
  25. against a NT domain.
  26.  
  27. Older version of these modules have a well known buffer 
  28. overflow which may allow an intruder to execute arbitrary 
  29. commands as root on this host. 
  30.  
  31. It may also mean that this telnet server is weak and crashes
  32. when issued a too long username, in this case this host is
  33. vulnerable to a similar flow.
  34.  
  35. This may also be a false positive.
  36.  
  37.  
  38. Solution : 
  39.  
  40.  . if pam_smb or pam_ntdom is being used on this host, be sure to upgrade it 
  41.    to the newest non-devel version.
  42.  
  43.  . if the remote telnet server crashed, contact your vendor for a patch
  44.  
  45. Risk factor : High";
  46.  
  47.  
  48.  desc["francais"] = "
  49. Le serveur telnet distant a brutalement coupΘ la connection lorsqu'un
  50. nom d'utilisateur trop long, suivi d'un mot de passe, a ΘtΘ
  51. envoyΘ.
  52.  
  53. Bien que Nessus ne puisse etre 100% catΘgorique α ce propos,
  54. il se peut que l'hote distant utilise les modules d'authentification
  55. pam_smb ou pam_ntdom pour valider les noms d'utilisateurs auprΦs
  56. du domaine NT.
  57.  
  58. D'anciennes versions de ces modules possΦdent un dΘpassement de
  59. buffer permettant a un pirate d'executer du code arbitraire sur ces
  60. machines.
  61.  
  62. Il se peut aussi que le serveur telnet distant soit mal Θcrit
  63. et plante lorsqu'un argument trop long lui est donnΘ - auquel
  64. cas, ce serveur est vulnΘrable de la meme maniΦre
  65.  
  66. Enfin, il peut s'agir d'une fausse alerte.
  67.  
  68.  
  69. Solution :
  70.     . si cet hote utilise pam_ntdom ou pam_smb, mettez
  71.       ces modules α jour
  72.       
  73.     . si le serveur telnet distant a plantΘ, contactez
  74.       votre vendeur et demandez un patch
  75.     
  76.     
  77. Facteur de risque : ElevΘ";
  78.  
  79.  
  80.  
  81.  script_description(english:desc["english"], francais:desc["francais"]);
  82.  
  83.  summary["english"] = "Attempts to overflow the remote pam_smb";
  84.  summary["francais"] = "Essaye de trop remplir les buffers de pam_smb";
  85.  script_summary(english:summary["english"], francais:summary["francais"]);
  86.  
  87.  script_category(ACT_DESTRUCTIVE_ATTACK);
  88.  
  89.  
  90.  script_copyright(english:"This script is Copyright (C) 2000 Renaud Deraison",
  91.         francais:"Ce script est Copyright (C) 2000 Renaud Deraison");
  92.  family["english"] = "Gain root remotely";
  93.  family["francais"] = "Passer root α distance";
  94.  script_family(english:family["english"], francais:family["francais"]);
  95.  script_dependencie("find_service.nes");
  96.  script_require_ports("Services/telnet", 23);
  97.  exit(0);
  98. }
  99.  
  100.  
  101. port = get_kb_item("Services/telnet");
  102. if(!port)port = 23;
  103.  
  104. if(get_port_state(port))
  105. {
  106. soc = open_sock_tcp(port);
  107. if(soc)
  108.  {
  109.   r = telnet_init(soc);
  110.   if(!r)exit(0);
  111.   if("HP JetDirect" >< r )exit(0);
  112.   login = crap(length:1024, data:"nessus") + string("\r\n");
  113.   send(socket:soc, data:login);
  114.   r = recv(socket:soc, length:2048);
  115.   if(!r)exit(0);
  116.   send(socket:soc, data:string("pass\r\n"));
  117.   r = recv(socket:soc, length:2048);
  118.   close(soc);
  119.   if(!r)
  120.   {
  121.   security_hole(port);
  122.   }
  123.  }
  124. }
  125.